home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-05-01 | 35.2 KB | 894 lines | [ TEXT/MPS ]
{ File: ImageCompression.p Contains: QuickTime Image Compression Interfaces. Version: Technology: QuickTime 2.1 Release: Universal Interfaces 3.0d3 on Copland DR1 Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, send the file and version information (from above) and the problem description to: Internet: apple.bugs@applelink.apple.com AppleLink: APPLE.BUGS } {$IFC UNDEFINED UsingIncludes} {$SETC UsingIncludes := 0} {$ENDC} {$IFC NOT UsingIncludes} UNIT ImageCompression; INTERFACE {$ENDC} {$IFC UNDEFINED __IMAGECOMPRESSION__} {$SETC __IMAGECOMPRESSION__ := 1} {$I+} {$SETC ImageCompressionIncludes := UsingIncludes} {$SETC UsingIncludes := 1} {$IFC UNDEFINED __TYPES__} {$I Types.p} {$ENDC} {$IFC UNDEFINED __QUICKDRAW__} {$I Quickdraw.p} {$ENDC} {$IFC UNDEFINED __QDOFFSCREEN__} {$I QDOffscreen.p} {$ENDC} {$IFC UNDEFINED __COMPONENTS__} {$I Components.p} {$ENDC} {$IFC UNDEFINED __WINDOWS__} {$I Windows.p} {$ENDC} {$IFC UNDEFINED __STANDARDFILE__} {$I StandardFile.p} {$ENDC} {$PUSH} {$ALIGN MAC68K} {$LibExport+} {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE } TYPE MatrixRecordPtr = ^MatrixRecord; MatrixRecord = RECORD matrix: ARRAY [0..2,0..2] OF Fixed; END; FixedPointPtr = ^FixedPoint; FixedPoint = RECORD x: Fixed; y: Fixed; END; FixedRectPtr = ^FixedRect; FixedRect = RECORD left: Fixed; top: Fixed; right: Fixed; bottom: Fixed; END; { These are the bits that are set in the Component flags, and also in the codecInfo struct. } CONST codecInfoDoes1 = $00000001; codecInfoDoes2 = $00000002; codecInfoDoes4 = $00000004; codecInfoDoes8 = $00000008; codecInfoDoes16 = $00000010; codecInfoDoes32 = $00000020; codecInfoDoesDither = $00000040; codecInfoDoesStretch = $00000080; codecInfoDoesShrink = $00000100; codecInfoDoesMask = $00000200; codecInfoDoesTemporal = $00000400; codecInfoDoesDouble = $00000800; codecInfoDoesQuad = $00001000; codecInfoDoesHalf = $00002000; codecInfoDoesQuarter = $00004000; codecInfoDoesRotate = $00008000; codecInfoDoesHorizFlip = $00010000; codecInfoDoesVertFlip = $00020000; codecInfoDoesSkew = $00040000; codecInfoDoesBlend = $00080000; codecInfoDoesWarp = $00100000; codecInfoDoesRecompress = $00200000; codecInfoDoesSpool = $00400000; codecInfoDoesRateConstrain = $00800000; codecInfoDepth1 = $00000001; codecInfoDepth2 = $00000002; codecInfoDepth4 = $00000004; codecInfoDepth8 = $00000008; codecInfoDepth16 = $00000010; codecInfoDepth32 = $00000020; codecInfoDepth24 = $00000040; codecInfoDepth33 = $00000080; codecInfoDepth34 = $00000100; codecInfoDepth36 = $00000200; codecInfoDepth40 = $00000400; codecInfoStoresClut = $00000800; codecInfoDoesLossless = $00001000; codecInfoSequenceSensitive = $00002000; codecFlagUseImageBuffer = $00000001; codecFlagUseScreenBuffer = $00000002; codecFlagUpdatePrevious = $00000004; codecFlagNoScreenUpdate = $00000008; codecFlagWasCompressed = $00000010; codecFlagDontOffscreen = $00000020; codecFlagUpdatePreviousComp = $00000040; codecFlagForceKeyFrame = $00000080; codecFlagOnlyScreenUpdate = $00000100; codecFlagLiveGrab = $00000200; codecFlagDontUseNewImageBuffer = $00000400; codecFlagInterlaceUpdate = $00000800; codecFlagCatchUpDiff = $00001000; codecFlagUsedNewImageBuffer = $00004000; codecFlagUsedImageBuffer = $00008000; { The minimum data size for spooling in or out data } codecMinimumDataSize = 32768; compressorComponentType = 'imco'; { the type for "Components" which compress images } decompressorComponentType = 'imdc'; { the type for "Components" which decompress images } TYPE CompressorComponent = Component; DecompressorComponent = Component; CodecComponent = Component; CONST anyCodec = 0; { take first working codec of given type } bestSpeedCodec = -1; { take fastest codec of given type } bestFidelityCodec = -2; { take codec which is most accurate } bestCompressionCodec = -3; { take codec of given type that is most accurate } TYPE CodecType = LONGINT; CodecFlags = INTEGER; CodecQ = LONGINT; CONST codecLosslessQuality = $00000400; codecMaxQuality = $000003FF; codecMinQuality = $00000000; codecLowQuality = $00000100; codecNormalQuality = $00000200; codecHighQuality = $00000300; codecCompletionSource = $01; { asynchronous codec is done with source data } codecCompletionDest = $02; { asynchronous codec is done with destination data } codecCompletionDontUnshield = $04; { on dest complete don't unshield cursor } codecProgressOpen = 0; codecProgressUpdatePercent = 1; codecProgressClose = 2; TYPE ICMDataProcPtr = ProcPtr; { FUNCTION ICMData(VAR dataP: Ptr; bytesNeeded: LONGINT; refcon: LONGINT): OSErr; } ICMFlushProcPtr = ProcPtr; { FUNCTION ICMFlush(data: Ptr; bytesAdded: LONGINT; refcon: LONGINT): OSErr; } ICMCompletionProcPtr = ProcPtr; { PROCEDURE ICMCompletion(result: OSErr; flags: INTEGER; refcon: LONGINT); } ICMProgressProcPtr = ProcPtr; { FUNCTION ICMProgress(message: INTEGER; completeness: Fixed; refcon: LONGINT): OSErr; } StdPixProcPtr = ProcPtr; { PROCEDURE StdPix(VAR src: PixMap; VAR srcRect: Rect; VAR matrix: MatrixRecord; mode: INTEGER; mask: RgnHandle; VAR matte: PixMap; VAR matteRect: Rect; flags: INTEGER); } ICMAlignmentProcPtr = ProcPtr; { PROCEDURE ICMAlignment(VAR rp: Rect; refcon: LONGINT); } ICMMemoryDisposedProcPtr = ProcPtr; { PROCEDURE ICMMemoryDisposed(memoryBlock: Ptr; refcon: UNIV Ptr); } ICMDataUPP = UniversalProcPtr; ICMFlushUPP = UniversalProcPtr; ICMCompletionUPP = UniversalProcPtr; ICMProgressUPP = UniversalProcPtr; StdPixUPP = UniversalProcPtr; ICMAlignmentUPP = UniversalProcPtr; ICMMemoryDisposedUPP = UniversalProcPtr; ImageSequence = LONGINT; ImageSequenceDataSource = LONGINT; ICMProgressProcRecordPtr = ^ICMProgressProcRecord; ICMProgressProcRecord = RECORD progressProc: ICMProgressUPP; progressRefCon: LONGINT; END; ICMCompletionProcRecordPtr = ^ICMCompletionProcRecord; ICMCompletionProcRecord = RECORD completionProc: ICMCompletionUPP; completionRefCon: LONGINT; END; ICMDataProcRecordPtr = ^ICMDataProcRecord; ICMDataProcRecord = RECORD dataProc: ICMDataUPP; dataRefCon: LONGINT; END; ICMFlushProcRecordPtr = ^ICMFlushProcRecord; ICMFlushProcRecord = RECORD flushProc: ICMFlushUPP; flushRefCon: LONGINT; END; ICMAlignmentProcRecordPtr = ^ICMAlignmentProcRecord; ICMAlignmentProcRecord = RECORD alignmentProc: ICMAlignmentUPP; alignmentRefCon: LONGINT; END; DataRateParamsPtr = ^DataRateParams; DataRateParams = RECORD dataRate: LONGINT; dataOverrun: LONGINT; frameDuration: LONGINT; keyFrameRate: LONGINT; minSpatialQuality: CodecQ; minTemporalQuality: CodecQ; END; ImageDescriptionPtr = ^ImageDescription; ImageDescription = PACKED RECORD idSize: LONGINT; { total size of ImageDescription including extra data ( CLUTs and other per sequence data } cType: CodecType; { what kind of codec compressed this data } resvd1: LONGINT; { reserved for Apple use } resvd2: INTEGER; { reserved for Apple use } dataRefIndex: INTEGER; { set to zero } version: INTEGER; { which version is this data } revisionLevel: INTEGER; { what version of that codec did this } vendor: LONGINT; { whose codec compressed this data } temporalQuality: CodecQ; { what was the temporal quality factor } spatialQuality: CodecQ; { what was the spatial quality factor } width: INTEGER; { how many pixels wide is this data } height: INTEGER; { how many pixels high is this data } hRes: Fixed; { horizontal resolution } vRes: Fixed; { vertical resolution } dataSize: LONGINT; { if known, the size of data for this image descriptor } frameCount: INTEGER; { number of frames this description applies to } name: Str31; { name of codec ( in case not installed ) } depth: INTEGER; { what depth is this data (1-32) or ( 33-40 grayscale ) } clutID: INTEGER; { clut id or if 0 clut follows or -1 if no clut } END; ImageDescriptionHandle = ^ImageDescriptionPtr; CodecInfoPtr = ^CodecInfo; CodecInfo = PACKED RECORD typeName: Str31; { name of the codec type i.e.: 'Apple Image Compression' } version: INTEGER; { version of the codec data that this codec knows about } revisionLevel: INTEGER; { revision level of this codec i.e: 0x00010001 (1.0.1) } vendor: LONGINT; { Maker of this codec i.e: 'appl' } decompressFlags: LONGINT; { codecInfo flags for decompression capabilities } compressFlags: LONGINT; { codecInfo flags for compression capabilities } formatFlags: LONGINT; { codecInfo flags for compression format details } compressionAccuracy: UInt8; { measure (1-255) of accuracy of this codec for compress (0 if unknown) } decompressionAccuracy: UInt8; { measure (1-255) of accuracy of this codec for decompress (0 if unknown) } compressionSpeed: INTEGER; { ( millisecs for compressing 320x240 on base mac II) (0 if unknown) } decompressionSpeed: INTEGER; { ( millisecs for decompressing 320x240 on mac II)(0 if unknown) } compressionLevel: UInt8; { measure (1-255) of compression level of this codec (0 if unknown) } resvd: UInt8; { pad } minimumHeight: INTEGER; { minimum height of image (block size) } minimumWidth: INTEGER; { minimum width of image (block size) } decompressPipelineLatency: INTEGER; { in milliseconds ( for asynchronous codecs ) } compressPipelineLatency: INTEGER; { in milliseconds ( for asynchronous codecs ) } privateData: LONGINT; END; CodecNameSpecPtr = ^CodecNameSpec; CodecNameSpec = RECORD codec: CodecComponent; cType: CodecType; typeName: Str31; name: Handle; END; CodecNameSpecListPtr = ^CodecNameSpecList; CodecNameSpecList = RECORD count: INTEGER; list: ARRAY [0..0] OF CodecNameSpec; END; CONST defaultDither = 0; forceDither = 1; suppressDither = 2; useColorMatching = 4; TYPE ICMFrameTimeRecordPtr = ^ICMFrameTimeRecord; ICMFrameTimeRecord = RECORD value: wide; { frame time } scale: LONGINT; { timescale of value/duration fields } base: Ptr; { timebase } duration: LONGINT; { duration frame is to be displayed (0 if unknown) } rate: Fixed; { rate of timebase relative to wall-time } END; ICMFrameTimePtr = ^ICMFrameTimeRecord; CONST uppICMDataProcInfo = $00000FE0; uppICMFlushProcInfo = $00000FE0; uppICMCompletionProcInfo = $00000E80; uppICMProgressProcInfo = $00000FA0; uppStdPixProcInfo = $002FEFC0; uppICMAlignmentProcInfo = $000003C0; uppICMMemoryDisposedProcInfo = $000003C0; FUNCTION NewICMDataProc(userRoutine: ICMDataProcPtr): ICMDataUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION NewICMFlushProc(userRoutine: ICMFlushProcPtr): ICMFlushUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION NewICMCompletionProc(userRoutine: ICMCompletionProcPtr): ICMCompletionUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION NewICMProgressProc(userRoutine: ICMProgressProcPtr): ICMProgressUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION NewStdPixProc(userRoutine: StdPixProcPtr): StdPixUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION NewICMAlignmentProc(userRoutine: ICMAlignmentProcPtr): ICMAlignmentUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION NewICMMemoryDisposedProc(userRoutine: ICMMemoryDisposedProcPtr): ICMMemoryDisposedUPP; {$IFC NOT GENERATINGCFM } INLINE $2E9F; {$ENDC} FUNCTION CallICMDataProc(VAR dataP: Ptr; bytesNeeded: LONGINT; refcon: LONGINT; userRoutine: ICMDataUPP): OSErr; {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} FUNCTION CallICMFlushProc(data: Ptr; bytesAdded: LONGINT; refcon: LONGINT; userRoutine: ICMFlushUPP): OSErr; {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} PROCEDURE CallICMCompletionProc(result: OSErr; flags: INTEGER; refcon: LONGINT; userRoutine: ICMCompletionUPP); {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} FUNCTION CallICMProgressProc(message: INTEGER; completeness: Fixed; refcon: LONGINT; userRoutine: ICMProgressUPP): OSErr; {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} PROCEDURE CallStdPixProc(VAR src: PixMap; VAR srcRect: Rect; VAR matrix: MatrixRecord; mode: INTEGER; mask: RgnHandle; VAR matte: PixMap; VAR matteRect: Rect; flags: INTEGER; userRoutine: StdPixUPP); {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} PROCEDURE CallICMAlignmentProc(VAR rp: Rect; refcon: LONGINT; userRoutine: ICMAlignmentUPP); {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} PROCEDURE CallICMMemoryDisposedProc(memoryBlock: Ptr; refcon: UNIV Ptr; userRoutine: ICMMemoryDisposedUPP); {$IFC NOT GENERATINGCFM} INLINE $205F, $4E90; {$ENDC} FUNCTION CodecManagerVersion(VAR version: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7000, $AAA3; {$ENDC} FUNCTION GetCodecNameList(VAR list: CodecNameSpecListPtr; showAll: INTEGER): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7001, $AAA3; {$ENDC} FUNCTION DisposeCodecNameList(list: CodecNameSpecListPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700F, $AAA3; {$ENDC} FUNCTION GetCodecInfo(VAR info: CodecInfo; cType: CodecType; codec: CodecComponent): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7003, $AAA3; {$ENDC} FUNCTION GetMaxCompressionSize(src: PixMapHandle; {CONST}VAR srcRect: Rect; colorDepth: INTEGER; quality: CodecQ; cType: CodecType; codec: CompressorComponent; VAR size: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7004, $AAA3; {$ENDC} FUNCTION GetCompressionTime(src: PixMapHandle; {CONST}VAR srcRect: Rect; colorDepth: INTEGER; cType: CodecType; codec: CompressorComponent; VAR spatialQuality: CodecQ; VAR temporalQuality: CodecQ; VAR compressTime: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7005, $AAA3; {$ENDC} FUNCTION CompressImage(src: PixMapHandle; {CONST}VAR srcRect: Rect; quality: CodecQ; cType: CodecType; desc: ImageDescriptionHandle; data: Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7006, $AAA3; {$ENDC} FUNCTION FCompressImage(src: PixMapHandle; {CONST}VAR srcRect: Rect; colorDepth: INTEGER; quality: CodecQ; cType: CodecType; codec: CompressorComponent; clut: CTabHandle; flags: CodecFlags; bufferSize: LONGINT; flushProc: ICMFlushProcRecordPtr; progressProc: ICMProgressProcRecordPtr; desc: ImageDescriptionHandle; data: Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7007, $AAA3; {$ENDC} FUNCTION DecompressImage(data: Ptr; desc: ImageDescriptionHandle; dst: PixMapHandle; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect; mode: INTEGER; mask: RgnHandle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7008, $AAA3; {$ENDC} FUNCTION FDecompressImage(data: Ptr; desc: ImageDescriptionHandle; dst: PixMapHandle; {CONST}VAR srcRect: Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: RgnHandle; matte: PixMapHandle; {CONST}VAR matteRect: Rect; accuracy: CodecQ; codec: DecompressorComponent; bufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7009, $AAA3; {$ENDC} FUNCTION CompressSequenceBegin(VAR seqID: ImageSequence; src: PixMapHandle; prev: PixMapHandle; {CONST}VAR srcRect: Rect; {CONST}VAR prevRect: Rect; colorDepth: INTEGER; cType: CodecType; codec: CompressorComponent; spatialQuality: CodecQ; temporalQuality: CodecQ; keyFrameRate: LONGINT; clut: CTabHandle; flags: CodecFlags; desc: ImageDescriptionHandle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700A, $AAA3; {$ENDC} FUNCTION CompressSequenceFrame(seqID: ImageSequence; src: PixMapHandle; {CONST}VAR srcRect: Rect; flags: CodecFlags; data: Ptr; VAR dataSize: LONGINT; VAR similarity: UInt8; asyncCompletionProc: ICMCompletionProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700B, $AAA3; {$ENDC} FUNCTION DecompressSequenceBegin(VAR seqID: ImageSequence; desc: ImageDescriptionHandle; port: CGrafPtr; gdh: GDHandle; {CONST}VAR srcRect: Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: RgnHandle; flags: CodecFlags; accuracy: CodecQ; codec: DecompressorComponent): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700D, $AAA3; {$ENDC} FUNCTION DecompressSequenceBeginS(VAR seqID: ImageSequence; desc: ImageDescriptionHandle; data: Ptr; dataSize: LONGINT; port: CGrafPtr; gdh: GDHandle; {CONST}VAR srcRect: Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: RgnHandle; flags: CodecFlags; accuracy: CodecQ; codec: DecompressorComponent): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0030, $005D, $AAA3; {$ENDC} FUNCTION DecompressSequenceFrame(seqID: ImageSequence; data: Ptr; inFlags: CodecFlags; VAR outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700E, $AAA3; {$ENDC} FUNCTION DecompressSequenceFrameS(seqID: ImageSequence; data: Ptr; dataSize: LONGINT; inFlags: CodecFlags; VAR outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0016, $0047, $AAA3; {$ENDC} FUNCTION DecompressSequenceFrameWhen(seqID: ImageSequence; data: Ptr; dataSize: LONGINT; inFlags: CodecFlags; VAR outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr; {CONST}VAR frameTime: ICMFrameTimeRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $001A, $005E, $AAA3; {$ENDC} FUNCTION CDSequenceFlush(seqID: ImageSequence): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0004, $005F, $AAA3; {$ENDC} FUNCTION SetDSequenceMatrix(seqID: ImageSequence; matrix: MatrixRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7010, $AAA3; {$ENDC} FUNCTION SetDSequenceMatte(seqID: ImageSequence; matte: PixMapHandle; {CONST}VAR matteRect: Rect): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7011, $AAA3; {$ENDC} FUNCTION SetDSequenceMask(seqID: ImageSequence; mask: RgnHandle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7012, $AAA3; {$ENDC} FUNCTION SetDSequenceTransferMode(seqID: ImageSequence; mode: INTEGER; {CONST}VAR opColor: RGBColor): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7013, $AAA3; {$ENDC} FUNCTION SetDSequenceDataProc(seqID: ImageSequence; dataProc: ICMDataProcRecordPtr; bufferSize: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7014, $AAA3; {$ENDC} FUNCTION SetDSequenceAccuracy(seqID: ImageSequence; accuracy: CodecQ): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7034, $AAA3; {$ENDC} FUNCTION SetDSequenceSrcRect(seqID: ImageSequence; {CONST}VAR srcRect: Rect): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7035, $AAA3; {$ENDC} FUNCTION GetDSequenceImageBuffer(seqID: ImageSequence; VAR gworld: GWorldPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7015, $AAA3; {$ENDC} FUNCTION GetDSequenceScreenBuffer(seqID: ImageSequence; VAR gworld: GWorldPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7016, $AAA3; {$ENDC} FUNCTION SetCSequenceQuality(seqID: ImageSequence; spatialQuality: CodecQ; temporalQuality: CodecQ): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7017, $AAA3; {$ENDC} FUNCTION SetCSequencePrev(seqID: ImageSequence; prev: PixMapHandle; {CONST}VAR prevRect: Rect): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7018, $AAA3; {$ENDC} FUNCTION SetCSequenceFlushProc(seqID: ImageSequence; flushProc: ICMFlushProcRecordPtr; bufferSize: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7033, $AAA3; {$ENDC} FUNCTION SetCSequenceKeyFrameRate(seqID: ImageSequence; keyframerate: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7036, $AAA3; {$ENDC} FUNCTION GetCSequenceKeyFrameRate(seqID: ImageSequence; VAR keyframerate: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $004B, $AAA3; {$ENDC} FUNCTION GetCSequencePrevBuffer(seqID: ImageSequence; VAR gworld: GWorldPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7019, $AAA3; {$ENDC} FUNCTION CDSequenceBusy(seqID: ImageSequence): OSErr; {$IFC NOT GENERATINGCFM} INLINE $701A, $AAA3; {$ENDC} FUNCTION CDSequenceEnd(seqID: ImageSequence): OSErr; {$IFC NOT GENERATINGCFM} INLINE $701B, $AAA3; {$ENDC} FUNCTION CDSequenceEquivalentImageDescription(seqID: ImageSequence; newDesc: ImageDescriptionHandle; VAR equivalent: BOOLEAN): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $0065, $AAA3; {$ENDC} FUNCTION GetCompressedImageSize(desc: ImageDescriptionHandle; data: Ptr; bufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; VAR dataSize: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $701C, $AAA3; {$ENDC} FUNCTION GetSimilarity(src: PixMapHandle; {CONST}VAR srcRect: Rect; desc: ImageDescriptionHandle; data: Ptr; VAR similarity: Fixed): OSErr; {$IFC NOT GENERATINGCFM} INLINE $701D, $AAA3; {$ENDC} FUNCTION GetImageDescriptionCTable(desc: ImageDescriptionHandle; VAR ctable: CTabHandle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $701E, $AAA3; {$ENDC} FUNCTION SetImageDescriptionCTable(desc: ImageDescriptionHandle; ctable: CTabHandle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $701F, $AAA3; {$ENDC} FUNCTION GetImageDescriptionExtension(desc: ImageDescriptionHandle; VAR extension: Handle; idType: LONGINT; index: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7020, $AAA3; {$ENDC} FUNCTION AddImageDescriptionExtension(desc: ImageDescriptionHandle; extension: Handle; idType: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7021, $AAA3; {$ENDC} FUNCTION SetImageDescriptionExtension(desc: ImageDescriptionHandle; extension: Handle; idType: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7021, $AAA3; {$ENDC} FUNCTION RemoveImageDescriptionExtension(VAR desc: ImageDescriptionPtr; idType: LONGINT; index: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $003A, $AAA3; {$ENDC} FUNCTION CountImageDescriptionExtensionType(VAR desc: ImageDescriptionPtr; idType: LONGINT; VAR count: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $003B, $AAA3; {$ENDC} FUNCTION GetNextImageDescriptionExtensionType(VAR desc: ImageDescriptionPtr; VAR idType: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $003C, $AAA3; {$ENDC} FUNCTION FindCodec(cType: CodecType; specCodec: CodecComponent; VAR compressor: CompressorComponent; VAR decompressor: DecompressorComponent): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7023, $AAA3; {$ENDC} FUNCTION CompressPicture(srcPicture: PicHandle; dstPicture: PicHandle; quality: CodecQ; cType: CodecType): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7024, $AAA3; {$ENDC} FUNCTION FCompressPicture(srcPicture: PicHandle; dstPicture: PicHandle; colorDepth: INTEGER; clut: CTabHandle; quality: CodecQ; doDither: INTEGER; compressAgain: INTEGER; progressProc: ICMProgressProcRecordPtr; cType: CodecType; codec: CompressorComponent): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7025, $AAA3; {$ENDC} FUNCTION CompressPictureFile(srcRefNum: INTEGER; dstRefNum: INTEGER; quality: CodecQ; cType: CodecType): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7026, $AAA3; {$ENDC} FUNCTION FCompressPictureFile(srcRefNum: INTEGER; dstRefNum: INTEGER; colorDepth: INTEGER; clut: CTabHandle; quality: CodecQ; doDither: INTEGER; compressAgain: INTEGER; progressProc: ICMProgressProcRecordPtr; cType: CodecType; codec: CompressorComponent): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7027, $AAA3; {$ENDC} FUNCTION GetPictureFileHeader(refNum: INTEGER; VAR frame: Rect; VAR header: OpenCPicParams): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7028, $AAA3; {$ENDC} FUNCTION DrawPictureFile(refNum: INTEGER; {CONST}VAR frame: Rect; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7029, $AAA3; {$ENDC} FUNCTION DrawTrimmedPicture(srcPicture: PicHandle; {CONST}VAR frame: Rect; trimMask: RgnHandle; doDither: INTEGER; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $702E, $AAA3; {$ENDC} FUNCTION DrawTrimmedPictureFile(srcRefnum: INTEGER; {CONST}VAR frame: Rect; trimMask: RgnHandle; doDither: INTEGER; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $702F, $AAA3; {$ENDC} FUNCTION MakeThumbnailFromPicture(picture: PicHandle; colorDepth: INTEGER; thumbnail: PicHandle; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $702A, $AAA3; {$ENDC} FUNCTION MakeThumbnailFromPictureFile(refNum: INTEGER; colorDepth: INTEGER; thumbnail: PicHandle; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $702B, $AAA3; {$ENDC} FUNCTION MakeThumbnailFromPixMap(src: PixMapHandle; {CONST}VAR srcRect: Rect; colorDepth: INTEGER; thumbnail: PicHandle; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $702C, $AAA3; {$ENDC} FUNCTION TrimImage(desc: ImageDescriptionHandle; inData: Ptr; inBufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; outData: Ptr; outBufferSize: LONGINT; flushProc: ICMFlushProcRecordPtr; VAR trimRect: Rect; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $702D, $AAA3; {$ENDC} FUNCTION ConvertImage(srcDD: ImageDescriptionHandle; srcData: Ptr; colorDepth: INTEGER; clut: CTabHandle; accuracy: CodecQ; quality: CodecQ; cType: CodecType; codec: CodecComponent; dstDD: ImageDescriptionHandle; dstData: Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7030, $AAA3; {$ENDC} FUNCTION GetCompressedPixMapInfo(pix: PixMapPtr; VAR desc: ImageDescriptionHandle; VAR data: Ptr; VAR bufferSize: LONGINT; VAR dataProc: ICMDataProcRecord; VAR progressProc: ICMProgressProcRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7037, $AAA3; {$ENDC} FUNCTION SetCompressedPixMapInfo(pix: PixMapPtr; desc: ImageDescriptionHandle; data: Ptr; bufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; progressProc: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7038, $AAA3; {$ENDC} PROCEDURE StdPix(src: PixMapPtr; {CONST}VAR srcRect: Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: RgnHandle; matte: PixMapPtr; {CONST}VAR matteRect: Rect; flags: INTEGER); {$IFC NOT GENERATINGCFM} INLINE $700C, $AAA3; {$ENDC} FUNCTION TransformRgn(matrix: MatrixRecordPtr; rgn: RgnHandle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7039, $AAA3; {$ENDC} {$ENDC} {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED } { ********** preview stuff ********** } PROCEDURE SFGetFilePreview(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply); {$IFC NOT GENERATINGCFM} INLINE $7041, $AAA3; {$ENDC} PROCEDURE SFPGetFilePreview(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP); {$IFC NOT GENERATINGCFM} INLINE $7042, $AAA3; {$ENDC} PROCEDURE StandardGetFilePreview(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply); {$IFC NOT GENERATINGCFM} INLINE $7043, $AAA3; {$ENDC} PROCEDURE CustomGetFilePreview(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activateProc: ActivateYDUPP; yourDataPtr: UNIV Ptr); {$IFC NOT GENERATINGCFM} INLINE $7044, $AAA3; {$ENDC} {$ENDC} {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE } FUNCTION MakeFilePreview(resRefNum: INTEGER; progress: ICMProgressProcRecordPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7045, $AAA3; {$ENDC} FUNCTION AddFilePreview(resRefNum: INTEGER; previewType: OSType; previewData: Handle): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7046, $AAA3; {$ENDC} CONST sfpItemPreviewAreaUser = 11; sfpItemPreviewStaticText = 12; sfpItemPreviewDividerUser = 13; sfpItemCreatePreviewButton = 14; sfpItemShowPreviewButton = 15; TYPE PreviewResourceRecordPtr = ^PreviewResourceRecord; PreviewResourceRecord = RECORD modDate: LONGINT; version: INTEGER; resType: OSType; resID: INTEGER; END; PreviewResourcePtr = ^PreviewResourceRecord; PreviewResource = ^PreviewResourcePtr; PROCEDURE AlignScreenRect(VAR rp: Rect; alignmentProc: ICMAlignmentProcRecordPtr); {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $004C, $AAA3; {$ENDC} PROCEDURE AlignWindow(wp: WindowPtr; front: BOOLEAN; {CONST}VAR alignmentRect: Rect; alignmentProc: ICMAlignmentProcRecordPtr); {$IFC NOT GENERATINGCFM} INLINE $203C, $000E, $004D, $AAA3; {$ENDC} PROCEDURE DragAlignedWindow(wp: WindowPtr; startPt: Point; VAR boundsRect: Rect; VAR alignmentRect: Rect; alignmentProc: ICMAlignmentProcRecordPtr); {$IFC NOT GENERATINGCFM} INLINE $203C, $0014, $004E, $AAA3; {$ENDC} FUNCTION DragAlignedGrayRgn(theRgn: RgnHandle; startPt: Point; VAR boundsRect: Rect; VAR slopRect: Rect; axis: INTEGER; actionProc: UniversalProcPtr; VAR alignmentRect: Rect; alignmentProc: ICMAlignmentProcRecordPtr): LONGINT; {$IFC NOT GENERATINGCFM} INLINE $203C, $001E, $004F, $AAA3; {$ENDC} FUNCTION SetCSequenceDataRateParams(seqID: ImageSequence; params: DataRateParamsPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0050, $AAA3; {$ENDC} FUNCTION SetCSequenceFrameNumber(seqID: ImageSequence; frameNumber: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0051, $AAA3; {$ENDC} FUNCTION NewImageGWorld(VAR gworld: GWorldPtr; idh: ImageDescriptionHandle; flags: GWorldFlags): QDErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $0052, $AAA3; {$ENDC} FUNCTION GetCSequenceDataRateParams(seqID: ImageSequence; params: DataRateParamsPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0053, $AAA3; {$ENDC} FUNCTION GetCSequenceFrameNumber(seqID: ImageSequence; VAR frameNumber: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0054, $AAA3; {$ENDC} FUNCTION GetBestDeviceRect(VAR gdh: GDHandle; VAR rp: Rect): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0055, $AAA3; {$ENDC} FUNCTION SetSequenceProgressProc(seqID: ImageSequence; VAR progressProc: ICMProgressProcRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0056, $AAA3; {$ENDC} FUNCTION GDHasScale(gdh: GDHandle; depth: INTEGER; VAR scale: Fixed): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000A, $005A, $AAA3; {$ENDC} FUNCTION GDGetScale(gdh: GDHandle; VAR scale: Fixed; VAR flags: INTEGER): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $005B, $AAA3; {$ENDC} FUNCTION GDSetScale(gdh: GDHandle; scale: Fixed; flags: INTEGER): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000A, $005C, $AAA3; {$ENDC} FUNCTION ICMShieldSequenceCursor(seqID: ImageSequence): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0004, $0062, $AAA3; {$ENDC} PROCEDURE ICMDecompressComplete(seqID: ImageSequence; err: OSErr; flag: INTEGER; completionRtn: ICMCompletionProcRecordPtr); {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $0063, $AAA3; {$ENDC} FUNCTION SetDSequenceTimeCode(seqID: ImageSequence; timeCodeFormat: UNIV Ptr; timeCodeTime: UNIV Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $000C, $0064, $AAA3; {$ENDC} FUNCTION CDSequenceNewMemory(seqID: ImageSequence; VAR data: Ptr; dataSize: Size; dataUse: LONGINT; memoryGoneProc: ICMMemoryDisposedUPP; refCon: UNIV Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0018, $0066, $AAA3; {$ENDC} FUNCTION CDSequenceDisposeMemory(seqID: ImageSequence; data: Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $0067, $AAA3; {$ENDC} FUNCTION CDSequenceNewDataSource(seqID: ImageSequence; VAR sourceID: ImageSequenceDataSource; sourceType: OSType; sourceInputNumber: LONGINT; dataDescription: Handle; transferProc: UNIV Ptr; refCon: UNIV Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $001C, $0068, $AAA3; {$ENDC} FUNCTION CDSequenceDisposeDataSource(sourceID: ImageSequenceDataSource): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0004, $0069, $AAA3; {$ENDC} FUNCTION CDSequenceSetSourceData(sourceID: ImageSequenceDataSource; data: UNIV Ptr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0008, $006A, $AAA3; {$ENDC} FUNCTION CDSequenceChangedSourceData(sourceID: ImageSequenceDataSource): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0004, $006B, $AAA3; {$ENDC} FUNCTION PtInDSequenceData(seqID: ImageSequence; data: UNIV Ptr; dataSize: Size; where: Point; VAR hit: BOOLEAN): OSErr; {$IFC NOT GENERATINGCFM} INLINE $203C, $0014, $006C, $AAA3; {$ENDC} CONST identityMatrixType = $00; { result if matrix is identity } translateMatrixType = $01; { result if matrix translates } scaleMatrixType = $02; { result if matrix scales } scaleTranslateMatrixType = $03; { result if matrix scales and translates } linearMatrixType = $04; { result if matrix is general 2 x 2 } linearTranslateMatrixType = $05; { result if matrix is general 2 x 2 and translates } perspectiveMatrixType = $06; { result if matrix is general 3 x 3 } TYPE MatrixFlags = INTEGER; FUNCTION GetMatrixType({CONST}VAR m: MatrixRecord): INTEGER; {$IFC NOT GENERATINGCFM} INLINE $7014, $ABC2; {$ENDC} PROCEDURE CopyMatrix({CONST}VAR m1: MatrixRecord; VAR m2: MatrixRecord); {$IFC NOT GENERATINGCFM} INLINE $7020, $ABC2; {$ENDC} FUNCTION EqualMatrix({CONST}VAR m1: MatrixRecord; {CONST}VAR m2: MatrixRecord): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $7021, $ABC2; {$ENDC} PROCEDURE SetIdentityMatrix(VAR matrix: MatrixRecord); {$IFC NOT GENERATINGCFM} INLINE $7015, $ABC2; {$ENDC} PROCEDURE TranslateMatrix(VAR m: MatrixRecord; deltaH: Fixed; deltaV: Fixed); {$IFC NOT GENERATINGCFM} INLINE $7019, $ABC2; {$ENDC} PROCEDURE RotateMatrix(VAR m: MatrixRecord; degrees: Fixed; aboutX: Fixed; aboutY: Fixed); {$IFC NOT GENERATINGCFM} INLINE $7016, $ABC2; {$ENDC} PROCEDURE ScaleMatrix(VAR m: MatrixRecord; scaleX: Fixed; scaleY: Fixed; aboutX: Fixed; aboutY: Fixed); {$IFC NOT GENERATINGCFM} INLINE $7017, $ABC2; {$ENDC} PROCEDURE SkewMatrix(VAR m: MatrixRecord; skewX: Fixed; skewY: Fixed; aboutX: Fixed; aboutY: Fixed); {$IFC NOT GENERATINGCFM} INLINE $7018, $ABC2; {$ENDC} FUNCTION TransformFixedPoints({CONST}VAR m: MatrixRecord; VAR fpt: FixedPoint; count: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7022, $ABC2; {$ENDC} FUNCTION TransformPoints({CONST}VAR mp: MatrixRecord; VAR pt1: Point; count: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7023, $ABC2; {$ENDC} FUNCTION TransformFixedRect({CONST}VAR m: MatrixRecord; VAR fr: FixedRect; VAR fpp: FixedPoint): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $7024, $ABC2; {$ENDC} FUNCTION TransformRect({CONST}VAR m: MatrixRecord; VAR r: Rect; VAR fpp: FixedPoint): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $7025, $ABC2; {$ENDC} FUNCTION InverseMatrix({CONST}VAR m: MatrixRecord; VAR im: MatrixRecord): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $701C, $ABC2; {$ENDC} PROCEDURE ConcatMatrix({CONST}VAR a: MatrixRecord; VAR b: MatrixRecord); {$IFC NOT GENERATINGCFM} INLINE $701B, $ABC2; {$ENDC} PROCEDURE RectMatrix(VAR matrix: MatrixRecord; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect); {$IFC NOT GENERATINGCFM} INLINE $701E, $ABC2; {$ENDC} PROCEDURE MapMatrix(VAR matrix: MatrixRecord; {CONST}VAR fromRect: Rect; {CONST}VAR toRect: Rect); {$IFC NOT GENERATINGCFM} INLINE $701D, $ABC2; {$ENDC} {$ENDC} {$ALIGN RESET} {$POP} {$SETC UsingIncludes := ImageCompressionIncludes} {$ENDC} {__IMAGECOMPRESSION__} {$IFC NOT UsingIncludes} END. {$ENDC}